package com.ruoyi.central.domain;

import com.baomidou.mybatisplus.annotation.*;
import com.ruoyi.common.validation.group.InsertGroup;
import com.ruoyi.common.validation.group.UpdateGroup;
import lombok.Data;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.annotation.Length;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import com.ruoyi.common.core.domain.BaseEntity;

import java.util.List;

/**
 * 执行工序对象 top_central_process_step_run
 *
 * @author SunLuQuan
 * @date 2022-04-26
 */
@Data
@TableName("top_central_process_step_run")
public class TopCentralProcessStepRun extends BaseEntity{

private static final long serialVersionUID = 1L;

    /** 编号 */
    @TableId
    @Length(min = 0,max = 10,message="编号 数据长度不能大于 10")
    private Integer id;

    /** 工序名称 */
    @Excel(name = "工序名称")
    @NotBlank(groups = {InsertGroup.class,UpdateGroup.class},message = "工序名称不能为空")
    @Length(min = 0,max = 50,message="工序名称 数据长度不能大于 50")
    private String name;

    @Excel(name = "图标")
    @Length(min = 0,max = 50,message="图标 数据长度不能大于 100")
    private String icon;

    /** 执行工艺编号 */
    @Excel(name = "执行工艺编号")
    @NotNull(groups = {InsertGroup.class,UpdateGroup.class},message = "执行工艺编号不能为空")
    @Length(min = 0,max = 10,message="执行工艺编号 数据长度不能大于 10")
    private Integer artProcessRunId;

    @TableField(exist = false)
    private TopCentralArtProcessRun artProcessRun;

    /** 工序编号 */
    @Excel(name = "工序编号")
    @NotNull(groups = {InsertGroup.class,UpdateGroup.class},message = "工序编号不能为空")
    @Length(min = 0,max = 10,message="工序编号 数据长度不能大于 10")
    private Integer processStepId;

    @TableField(exist = false)
    private TopCentralProcessStep processStep;

    /** 操作类型 */
    @Excel(name = "操作类型")
    @Length(min = 0,max = 1,message="操作类型 数据长度不能大于 1")
    private Integer operationType;

    /** 加工状态 */
    @Excel(name = "加工状态")
    @NotNull(groups = {InsertGroup.class,UpdateGroup.class},message = "加工状态不能为空")
    @Length(min = 0,max = 1,message="加工状态 数据长度不能大于 1")
    private Integer taskStatus;

    /** 修改者 */
    @Excel(name = "修改者")
    @Length(min=0,max=255,message="修改者 数据长度不能大于 255")
    @TableField(fill = FieldFill.UPDATE)
    private String updateBy;

    /** 描述 */
    @Excel(name = "描述")
    @Length(min=0,max=255,message="描述 数据长度不能大于 255")
    private String remark;

    /** 加工时长 */
    @TableField(exist = false)
    private String processingTime;
    /**任务执行指令列表*/
    @TableField(exist = false)
    private List<TopCentralTaskCmdRun> taskCmdRuns;

    public static TopCentralProcessStepRun build(TopCentralProcessStep processStep,TopCentralArtProcessRun artProcessRun){

        TopCentralProcessStepRun processStepRun = new TopCentralProcessStepRun();
        processStepRun.setIcon(processStep.getIcon());
        processStepRun.setName(processStep.getName());
        processStepRun.setArtProcessRunId(artProcessRun.getId());
        processStepRun.setProcessStepId(processStep.getId());
        processStepRun.setOperationType(processStep.getOperationType());
        processStepRun.setWeight(processStep.getWeight());
        return processStepRun;
    }
}
